//package com.young.shop.api.configurations;
//
//import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
//import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import java.util.HashMap;
//import java.util.LinkedHashMap;
//
///**
// * @author 曾家乐
// * @version 1.0
// * @date 2021-01-26 19:45
// */
//@Configuration
//public class shiroConfig {
//
//    //ShiroFilterFactoryBean 3
//    @Bean
//    public ShiroFilterFactoryBean getShiroFilterFactoryBean(
//            @Qualifier("defaultWebSecurityManager") DefaultWebSecurityManager SecurityManager) {
//        ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();
//        //设置安全管理器
//        bean.setSecurityManager(SecurityManager);
//
//        //添加shiro的内置过滤器
//        /**
//         * anon：无需认证就可以访问
//         * authc：必须认证了才能访问
//         * user：必须拥有 记住我 功能才能用
//         * perms：拥有对某个资源的权限才能访问
//         * role：拥有某个角色权限才能访问
//         */
//
//        HashMap<String, String> filterMap = new LinkedHashMap<>();
//
//        //add 需要认证（登录）才能访问
////        filterMap.put("/user/add","author");
////        filterMap.put("/user/update","author");
//        //拦截     设置那些页面需要登录才能进入
//        filterMap.put("/myCart/*" , "author");
//        filterMap.put("/order/*" , "author");
//
//        //授权    正常的情况下，跳转到未授权的页面下
//        //设置那些页面（或者功能）那些用户需要什么授权才能访问
////        filterMap.put("/user/del","perms[user:del]");
//
////        bean.setFilterChainDefinitionMap(filterMap);
//        //设置登录的请求
////        bean.setLoginUrl("/toLogin");
//        //未授权跳转的页面
////        bean.setUnauthorizedUrl("/unaunth");
//        //设置登录的请求
////        bean.setLoginUrl("/toLogin");
//
//        return bean;
//    }
//
//    //DefaltWebSecurityManager 2
//    @Bean
//    public DefaultWebSecurityManager defaultWebSecurityManager(@Qualifier("userRealm") UserRealm userRealm) {
//        DefaultWebSecurityManager SecurityManager = new DefaultWebSecurityManager();
//        //关联Realm
//        SecurityManager.setRealm(userRealm);
//        return SecurityManager;
//    }
//
//
//    //创建realm对象，需要自定义类 1
//    @Bean(name = "userRealm")
//    public UserRealm userRealm() {
//        return new UserRealm();
//    }
//
//
//
//}
